/**
 * 数组去重 - 兼容版（支持旧浏览器）
 * @param {Array} arr - 需要去重的数组
 * @returns {Array} 去重后的新数组
 */
function uniqueCompat(arr) {
  if (!Array.isArray(arr)) {
    throw new TypeError('Expected an array');
  }
  
  const result = [];
  const seen = {};
  
  for (let i = 0; i < arr.length; i++) {
    const item = arr[i];
    const key = typeof item + JSON.stringify(item);
    
    if (!seen[key]) {
      seen[key] = true;
      result.push(item);
    }
  }
  
  return result;
}

// 使用示例
console.log(uniqueCompat([1, 2, 2, 3, '3', null, null, {a:1}, {a:1}]));
// [1, 2, 3, '3', null, {a:1}, {a:1}]